البرمجة

دليل مبتدئي Laravel لبرمجة التطبيقات

دليل مطوّري PHP للبدء في بناء تطبيقات Laravel – الجزء الأوّل

تُعدّ لغة PHP واحدة من أكثر لغات البرمجة استخدامًا في تطوير الويب، وقد شهدت عبر السنوات تطوّراً ملحوظًا من حيث الأداء، الهيكلية، والأطر البرمجية التي تدعمها. ومن بين هذه الأطر، يبرز Laravel كأكثر أطر العمل استخداماً وانتشاراً في مجتمع مطوري PHP، لما يقدمه من أدوات قوية، بنية نظيفة، دعم مجتمعي واسع، وسهولة في كتابة التطبيقات المعقّدة بطريقة منظمة وسلسة. في هذا الجزء الأول من الدليل، سنقدّم مقدّمة شاملة حول Laravel، ونبني قاعدة معرفية متينة للمطورين الراغبين في دخول عالم تطوير التطبيقات باستخدام هذا الإطار القوي.


مقدّمة حول Laravel

Laravel هو إطار عمل مفتوح المصدر بلغة PHP تم تطويره لأول مرة على يد “Taylor Otwell” عام 2011. يهدف Laravel إلى جعل تطوير تطبيقات الويب تجربة مريحة وسلسة من خلال تبنّي أفضل الممارسات في تطوير البرمجيات، وتوفير مكونات جاهزة ومتكاملة مثل التوجيه، إدارة الجلسات، المصادقة، التعامل مع قواعد البيانات، نظام القوالب، وغيرها.

يعتمد Laravel على بنية MVC (Model-View-Controller)، وهي بنية تنظيمية تُفصل بين منطق العمل، واجهة المستخدم، وتعامل البيانات، مما يسهل عملية الصيانة وتوسعة التطبيقات في المستقبل.


المتطلبات الأساسية لبدء استخدام Laravel

لبدء العمل مع Laravel، من الضروري أولاً التأكد من توافر البيئة اللازمة لتشغيله، وهي:

  • PHP: الإصدار 8.1 أو أعلى.

  • Composer: أداة إدارة الحزم في PHP.

  • قاعدة بيانات: MySQL، PostgreSQL، SQLite أو SQL Server.

  • خادم ويب: Apache أو Nginx.

  • Node.js و NPM: لتجميع الأصول الأمامية (CSS/JS) باستخدام Laravel Mix.

يوصى باستخدام بيئة عمل محلية مثل Laravel Homestead أو Laravel Sail، وهي أدوات رسمية تسهّل على المطورين إعداد بيئة تطوير موحّدة باستخدام VirtualBox أو Docker.


تثبيت Laravel

باستخدام Composer

bash
composer create-project laravel/laravel my-project-name

بعد تنفيذ هذا الأمر، سيتم تحميل نسخة حديثة من Laravel مع جميع الاعتمادات اللازمة.

باستخدام Laravel Installer

bash
composer global require laravel/installer laravel new my-project-name

تمنحك الطريقة الثانية سرعة أكبر في التثبيت، خاصة إذا كنت تقوم بإنشاء مشاريع Laravel باستمرار.


بنية المشروع في Laravel

بمجرد تثبيت Laravel، ستلاحظ وجود مجموعة من المجلدات الأساسية التي تشكّل هيكل التطبيق، ومن أهمّها:

المجلد الوظيفة الأساسية
app/ يحتوي على ملفات المنطق الداخلي للتطبيق مثل Controllers وModels.
routes/ يحتوي على ملفات تعريف التوجيه.
resources/ يحتوي على ملفات الواجهات (Views) والأصول الأمامية.
database/ يحتوي على ملفات التهجير (Migrations) ونماذج البيانات الوهمية (Seeders).
config/ يحتوي على ملفات إعدادات النظام.
public/ الجذر العام للوصول إلى التطبيق من خلال المتصفح.
storage/ لتخزين الملفات المؤقتة، السجلات، الكاش.
bootstrap/ يحتوي على ملفات التهيئة الأولية للتطبيق.

أساسيات التوجيه Routing

التوجيه هو الخطوة الأولى التي تُعالج الطلبات القادمة من المستخدم. في Laravel، يتم تعريف التوجيهات داخل ملف routes/web.php لطلبات الويب، وroutes/api.php للواجهات البرمجية.

مثال على تعريف توجيه بسيط:

php
use Illuminate\Support\Facades\Route; Route::get('/hello', function () { return 'مرحباً بك في Laravel'; });

يمكن للتوجيه أن يوجّه إلى وحدة تحكم (Controller):

php
Route::get('/users', [UserController::class, 'index']);

إنشاء وحدات التحكم Controllers

توفر وحدات التحكم في Laravel طريقة منظمة لتنظيم منطق التطبيق. يتم إنشاؤها باستخدام الأمر:

bash
php artisan make:controller UserController

سيتم إنشاء ملف جديد داخل app/Http/Controllers/. داخل هذا الملف، يمكن إنشاء دوال مختلفة لمعالجة الطلبات، مثل:

php
class UserController extends Controller { public function index() { return view('users.index'); } }

إدارة قواعد البيانات باستخدام Migrations

واحدة من أقوى الميزات في Laravel هي نظام التهجير (Migrations) الذي يتيح إنشاء وتعديل قواعد البيانات باستخدام PHP بدلاً من SQL.

لإنشاء جدول:

bash
php artisan make:migration create_users_table

سيتم إنشاء ملف داخل database/migrations/ يمكن تعديله لتعريف الحقول:

php
Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); });

لتطبيق التغييرات على قاعدة البيانات:

bash
php artisan migrate

العمل مع Eloquent ORM

Eloquent هو نظام ORM (Object Relational Mapping) خاص بـ Laravel، يسهّل التعامل مع قواعد البيانات بطريقة كائنية.

مثال على نموذج مستخدم:

bash
php artisan make:model User

سيتم إنشاء نموذج User يمكن استخدامه للتعامل مع جدول users:

php
$users = User::all(); foreach ($users as $user) { echo $user->name; }

كما يدعم Eloquent العلاقات (One-to-Many, Many-to-Many, HasOne, BelongsTo)، والتي تُبنى باستخدام دوال داخل النماذج.


التعامل مع القوالب باستخدام Blade

Blade هو محرّك القوالب المدمج في Laravel، يسمح بكتابة الواجهات باستخدام توجيهات بسيطة:

blade
@extends('layouts.app') @section('content')

قائمة المستخدمين

    @foreach($users as $user)
  • {{ $user->name }}
  • @endforeach
@endsection

توفر Blade أدوات قوية مثل التكرار، التحقق الشرطي، تضمين القوالب، وتوريث التخطيطات (Layouts) مما يسهم في جعل كود الواجهة نظيفًا وقابلاً لإعادة الاستخدام.


استخدام الأوامر Artisan

يحتوي Laravel على واجهة أوامر متقدمة تُعرف بـ Artisan، تتيح تنفيذ مجموعة من المهام بطريقة تلقائية.

أمثلة على الأوامر المهمة:

الأمر الوظيفة
php artisan route:list عرض قائمة التوجيهات النشطة
php artisan migrate تنفيذ التهجير
php artisan make:model Post إنشاء نموذج Eloquent
php artisan make:controller إنشاء وحدة تحكم
php artisan serve تشغيل خادم التطوير المحلي

الجدول الزمني لطلب صفحة في Laravel

لفهم سير الطلب داخل تطبيق Laravel، من المهم معرفة المراحل التي تمر بها أي طلبية:

  1. الطلب يصل إلى خادم الويب (Apache/Nginx).

  2. يُوجَّه إلى ملف public/index.php، نقطة الدخول الأساسية.

  3. يبدأ Laravel في تحميل الملفات الأساسية من bootstrap/app.php.

  4. تتم تهيئة التطبيق وتحميل ملف routes/web.php لتحديد التوجيه.

  5. يتم تمرير الطلب إلى وحدة التحكم، التي تقوم بتنفيذ المنطق المناسب.

  6. يُعاد الرد إلى المتصفح على شكل HTML أو JSON.


أهمية بيئة التطوير المحلية

تشغيل Laravel محليًا باستخدام أدوات مثل Laravel Sail أو Homestead يقدّم العديد من الفوائد، مثل:

  • إعداد بيئة تطوير متكاملة متوافقة مع بيئة الإنتاج.

  • سهولة إدارة خدمات مثل MySQL, Redis, Mailhog.

  • دعم أوامر artisan وnpm وcomposer بشكل متكامل.


تنظيم الشيفرة وتحقيق مبدأ الفصل بين الاهتمامات

أحد مبادئ Laravel الجوهرية هو الفصل بين مكونات التطبيق. يمكن تلخيص ذلك كالتالي:

  • Controllers: تنفيذ المنطق واستقبال الطلبات.

  • Models: التعامل مع البيانات وقاعدة البيانات.

  • Views: عرض البيانات للمستخدم.

  • Requests: التحقق من صحة الطلبات.

  • Services: تنفيذ العمليات المعقّدة بشكل منفصل ومنظم.


التحكم بالجلسات والمصادقة

يوفّر Laravel أنظمة جاهزة لإدارة الجلسات والمصادقة باستخدام مكونات جاهزة مثل Auth وMiddleware.

يمكن تفعيل نظام المصادقة من خلال:

bash
php artisan make:auth

كما يوفّر Laravel واجهات جاهزة لتسجيل الدخول، التسجيل، استعادة كلمة المرور، وحماية الروابط باستخدام Middleware مثل:

php
Route::middleware('auth')->group(function () { Route::get('/dashboard', [DashboardController::class, 'index']); });

الخلاصة العامة للجزء الأول

في هذا الجزء الأول من دليل مطوّري PHP للبدء في بناء تطبيقات Laravel، تمّ التطرّق إلى الجوانب الأساسية التي تمكّن أي مطوّر من فهم البنية التحتية لـ Laravel، وكيفية إعداد المشروع، والعمل مع التوجيه، وحدات التحكم، النماذج، الواجهات، ونظام ORM، بالإضافة إلى فهم تسلسل الطلبات وتنظيم الشيفرة.

في الأجزاء القادمة من هذا الدليل، سيتم التوسّع في الجوانب المتقدّمة مثل بناء الواجهات البرمجية RESTful، استخدام Events وListeners، التحقق من الصلاحيات، بناء الاختبارات، وأفضل ممارسات النشر إلى بيئة الإنتاج.


المراجع:

  1. Laravel Official Documentation

  2. Otwell, Taylor. Laravel: Up & Running. O’Reilly Media, 2022.